package com.hopu.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Objects;

@TableName("t_menu")
@Data
public class Menu  extends BaseEntity{
    private static final long serialVersionUID = 1L;
    private String id;

    private String pid;  // 父级id。0：表示顶级目录
    private String menuName; // 菜单名称
    private Integer menuType; // 菜单类型。1：顶级目录；2：菜单;3：按钮
    private String menuImg; // 当前菜单对应的图标样式
    private String permiss; // 权限标识符
    private String url; // 点击菜单要跳转的路径地址
    private String functionImg;  //  打开跳转地址后对应菜单的图标样式
    private String seq; // 按钮的顺序。从1，2，3开始

    private Date createTime;
    private Date updateTime;
    /**
     * 子项
     * @TableField(exist=false) 表示忽略映射此字段
     */
    @TableField(exist=false)
    private List<Menu> nodes;
    // get、set方法，toString方法

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        Menu menu = (Menu) o;
        return Objects.equals(pid, menu.pid) &&
                Objects.equals(menuName, menu.menuName) &&
                Objects.equals(menuType, menu.menuType) &&
                Objects.equals(menuImg, menu.menuImg) &&
                Objects.equals(permiss, menu.permiss) &&
                Objects.equals(url, menu.url) &&
                Objects.equals(functionImg, menu.functionImg) &&
                Objects.equals(seq, menu.seq) &&
                Objects.equals(nodes, menu.nodes);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), pid, menuName, menuType, menuImg, permiss, url, functionImg, seq, nodes);
    }
}
